External Memory Search for Verification of Multi-threaded C++ Programs

نویسندگان

  • Stefan Edelkamp
  • Shahid Jabbar
  • Dino Midzic
  • Daniel Rikowski
  • Damian Sulewski
چکیده

With the advent of multi-core processors, the need for development of multi-threaded softwares has become indispensable. Verification of multi-threaded programs, particularly those that involve sharing of memory resources, poses a greater challenge than their sequential counterparts. A certain class of software model checking problems can be transformed to AI search problems in graphs. Search algorithms, such as DFS, BFS, A*, etc. can then be applied to find an erroneous program location in a given program. Unfortunately, verification of softwares is very memory intensive. In this paper, we equip the search algorithms used in model checking a C++ program, with a controlled access to secondary memory such as hard disk. We exploit the concept of a signature of a state that allows the full state vector to stay on secondary memory. The extended search algorithms are now able to solve larger problems that were unsolvable due to the memory bottleneck.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Distributed Verification of Multi-threaded C++ Programs

Verification of multi-threaded C++ programs poses three major challenges: the large number of states, states with huge sizes, and time intensive expansions of states. This paper presents our efforts in addressing these issues by combining an efficient use of hard disk with the distribution of the state space on several computing nodes. The approach is applicable to clusters and multi-core machi...

متن کامل

Verifying Multi-threaded C Programs with SPIN

A key challenge in model checking software is the difficulty of verifying properties of implementation code, as opposed to checking an abstract algorithmic description. We describe a tool for verifying multithreaded C programs that uses the SPIN model checker. Our tool works by compiling a multi-threaded C program into a typed bytecode format, and then using a virtual machine that interprets th...

متن کامل

Bounded Model Checking of Multi-threaded C Programs via Lazy Sequentialization

Bounded model checking (BMC) has successfully been used for many practical program verification problems, but concurrency still poses a challenge. Here we describe a new approach to BMC of sequentially consistent C programs using POSIX threads. Our approach first translates a multi-threaded C program into a nondeterministic sequential C program that preserves reachability for all round-robin sc...

متن کامل

Regression Verification for Multi-threaded Programs

Regression verification is the problem of deciding whether two similar programs are equivalent under an arbitrary yet equal context, given some definition of equivalence. So far this problem has only been studied for the case of single-threaded deterministic programs. We present a method for regression verification of multi-threaded programs. Specifically, we develop a proof-rule whose premise ...

متن کامل

A Race-Detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs

Testing concurrent programs that accept data inputs is notoriously hard because, besides the large number of possible data inputs, nondeterminism results in an exponentially large number of interleavings of concurrent events. In order to efficiently test shared-memory multithreaded programs, we develop an algorithm based on race-detection and flipping and illustrate how it can be combined with ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • KI

دوره 22  شماره 

صفحات  -

تاریخ انتشار 2008